// 柯里化案例
//面向过程中的提取方式 
//匹配字符串中的空白字符 \s  任意多个+ 全局匹配/g
// ''.match(/\s+/g);
// //匹配字符串中的数字 \d  任意多个+ 全局匹配/g
// ''.match(/\d+/g);

//优点  函数重复使用时便捷
const _ = require('lodash');

//字符串匹配
const match = _.curry(function (reg, str) {
    return str.match(reg);
})

const haveSpace = match(/\s+/g);
const haveNumber = match(/\d+/g);

//过滤数组中符合条件的元素
const filter = _.curry(function (func, array) {
    return array.filter(func);
})

//过滤空白字符串
const findSpace = filter(haveSpace);

// console.log(haveSpace('helloworld'));   //null
// console.log(haveNumber('123abc'));      //[ '123' ]

console.log(filter(haveSpace, ['John Connor', 'John_Donne']));  			//[ 'John Connor' ]


console.log(findSpace(['John Connor', 'John_Donne']));      	    //[ 'John Connor' ]